#include <iostream>
#include <unistd.h>
#include "pool.h"

using namespace std;

class TestThread final : public I_Thread {
public:
    TestThread() : I_Thread() {}
    ~TestThread() {}
    
    void run() override{
        cout << "当前线程 id = " << std::this_thread::get_id() << endl;
        sleep(2);
    }
};

int main() {

    // 创建线程池
    ThreadPool* pool = new ThreadPool(2, 16); // 为了使demo代码更简洁，不使用工厂模式
    // 添加任务
    for (int i = 0; i < 20; i++) {
        pool->addTask(new TestThread());
        sleep(1);
    }

    while (1); // 等待线程池调用线程执行任务
    
    return 0;
}